package com.yuw.program;

public class TestDriver {
    public static void main(String[] args) {
        // 调用子方法
        test01();
        System.out.println("----------------------------------");
        test02();
        System.out.println("----------------------------------");
        test021();
        System.out.println("----------------------------------");
        test03();
        System.out.println("----------------------------------");
        test031();
        System.out.println("----------------------------------");
        test032();
        System.out.println("----------------------------------");
        test04();
        System.out.println("----------------------------------");
        test041();
        System.out.println("----------------------------------");
        test05();
        System.out.println("------------------continue----------------");
        test06();

    }

    /**
     * continue关键字使用
     * 打印100以内的奇数
     */
    public static void test06() {
        // for循环
        // 初始化部分
        int i = 0;
        for (; ; ) { // 这是一个死循环
            // 先改变循环因子，防止被continue关键字影响
            // 改变循环因子放在循环体中
            i++;

            // 循环体结束条件
            if (i > 100) {
                // 结束for循环 --- 结束死循环
                break;
            }

            // 如果当前的数是偶数，则跳过，进入下一次循环
            if (i % 2 == 0) {
                // 跳过本次循环，进入下一次循环
                continue;
            }
            // 打印
            System.out.println("  " + i);
        }
    }

    /**
     * 循环结构-do-while语句
     * 打印100以内的奇数
     */
    public static void test05() {
        // while 循环
        // 初始化部分
        int i = 1;
        do { // 循环条件判定部分
            // 判断当前的数是不是奇数
            if (i % 2 == 1) {
                // 打印
                System.out.print("  " + i);
            }
            // 改变循环因子放在循环体中
            i++;
        } while (i <= 100);

        // 换行
        System.out.println();
    }

    /**
     * 循环结构-while语句--注意循环条件边界值的处理
     * 打印100以内的奇数
     */
    public static void test041() {
        // while 循环
        // 初始化部分
        int i = 0;
        while (i++ < 100) { // 循环条件判定部分 // 使用自增运算同时改变循环因子
            // 判断当前的数是不是奇数
            if (i % 2 == 1) {
                // 打印
                System.out.print("  " + i);
            }
            // 改变循环因子放在循环体中
            //i++;
        }

        // 换行
        System.out.println();
    }

    /**
     * 循环结构-while语句
     * 打印100以内的奇数
     */
    public static void test04() {
        // while 循环
        // 初始化部分
        int i = 1;
        while (i <= 100) { // 循环条件判定部分
            // 判断当前的数是不是奇数
            if (i % 2 == 1) {
                // 打印
                System.out.print("  " + i);
            }
            // 改变循环因子放在循环体中
            i++;
        }

        // 换行
        System.out.println();
    }

    /**
     * 循环结构-for语句
     * 打印100以内的奇数
     */
    public static void test032() {
        // for循环
        // 初始化部分
        int i = 1;
        for (; ; ) { // 这是一个死循环
            // 循环体结束条件
            if (i > 100) {
                // 结束for循环 --- 结束死循环
                break;
            }

            // 判断当前的数是不是奇数
            if (i % 2 == 1) {
                // 打印
                System.out.println("  " + i);
            }
            // 改变循环因子放在循环体中
            i++;
        }
    }

    /**
     * 循环结构-for语句
     * 打印100以内的奇数
     */
    public static void test031() {
        // for循环
        // 初始化部分
        int i = 1;
        for (; i <= 100; ) {
            // 判断当前的数是不是奇数
            if (i % 2 == 1) {
                // 打印
                System.out.println("  " + i);
            }
            // 改变循环因子放在循环体中
            i++;
        }
    }

    /**
     * 循环结构-for语句
     * 打印100以内的奇数
     */
    public static void test03() {
        // for循环
        for (int i = 1; i <= 100; i++) {
            // 判断当前的数是不是奇数
            if (i % 2 == 1) {
                // 打印
                System.out.println("  " + i);
            }
        }
    }

    /**
     * 选择结构-switch--优化
     */
    public static void test021() {
        int score = 85;
        // 通过除以10，减少case语句分支
        switch (score / 10) {
            case 10:
            case 9:
                System.out.println("优秀");
                break;
            case 8:
                System.out.println("良好");
                break;
            case 7:
                System.out.println("中等");
                break;
            case 6:
                System.out.println("及格");
                break;
            default:
                System.out.println("不及格");

        }
    }

    /**
     * 选择结构-switch
     */
    public static void test02() {
        int score = 90;
        switch (score) {
            case 100:
                System.out.println("优秀");
                break;
            case 99:
                System.out.println("优秀");
                break;
            case 90:
                System.out.println("优秀");
                break;
            case 89:
                System.out.println("良好");
                break;
            case 60:
                System.out.println("及格");
                break;
            default:
                System.out.println("不及格");

        }
    }

    /**
     * 选择结构-if
     */
    public static void test01() {
        // if 选择结构
        int score = 89;
        if (score >= 90) {
            System.out.println("优秀");
        } else {
            System.out.println("不优秀");
        }

        System.out.println("---------------------------------");
        if (score >= 90) {
            System.out.println("优秀");
        } else if (score >= 80) {
            System.out.println("良好");
        } else if (score >= 70) {
            System.out.println("中等");
        } else if (score >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
    }
}
